/******************************************************************************
 * @File name   :      IMaintainCarPlateService.java
 *
 * @Author      :      ANMA
 *
 * @Date        :      Jul 28, 2015
 *
 * @Copyright Notice: 
 * Copyright (c) 2014 DMS, Inc. All  Rights Reserved.
 * This software is published under the terms of the DMS Software
 * License version 1.0, a copy of which has been included with this
 * distribution in the LICENSE.txt file.
 * 
 * ----------------------------------------------------------------------------
 * Date                         Who         Version         Comments
 * Jul 28, 2015 2:08:37 PM    ANMA      1.0            Initial Version
 *****************************************************************************/
package com.cap.bts.crmdp.dealer.member.service;

import java.util.List;

import com.cap.bts.crmdp.dealer.member.domain.CarPlateInfo;
import com.cap.bts.crmdp.dealer.member.dto.MemberResultsDto;
import com.cap.bts.framework.common.exception.AppException;
import com.cap.bts.framework.common.service.IBaseService;

/**
 * 
 */
public interface IMaintainCarPlateService extends IBaseService {

	
	/**
	 * @Date        :      2015-7-20
	 * @param dto 
	 * @return List<CarPlateInfo> 
	 */
	public List<CarPlateInfo> getCarPlateInfoListByCarPlateOrMemberId(String carPlate, Long memberId) throws AppException;
	/**
	 * @Date        :      2015-7-20
	 * @param dto 
	 * @return CarPlateInfo
	 */
	public CarPlateInfo saveCarPlateInfo(MemberResultsDto dto) throws AppException;
	
	/**
	 * @Date        :      2015年8月6日
	 * @param id
	 * @return
	 * @throws AppException
	 */
	public boolean removeCarPlateInfo(Long id) throws AppException;
	

	/**
	 * @Date        :      2015年8月12日
	 * @param id
	 * @return
	 * @throws AppException
	 */
	public boolean existUsingPackage(Long id) throws AppException;
	/**
	 * @Date        :      2015年8月17日
	 * @param carPlate
	 * @param memberId
	 * @return
	 * @throws AppException
	 */
	public List<CarPlateInfo> getCarPlateInfoListByCarPlateAndMemberId(String carPlate, Long memberId) throws AppException;
	/**
	 * @Date        :      2015年8月25日
	 * @param dealerId
	 * @param carPlate
	 * @param memberId
	 * @return
	 * @throws AppException
	 */
	public CarPlateInfo getCarPlateListWithPackage(Long dealerId, Long carPlateId, Long memberId) throws AppException;
	/**
	 * @Date        :      2015年9月6日
	 * @param carPlateInfo
	 * @throws AppException
	 */
	public void updateCarPlateByCarPlateInfo(CarPlateInfo carPlateInfo, Long newMemberId) throws AppException;
	/**
	 * @Date        :      2015年9月6日
	 * @param id
	 * @param carPlate
	 * @param updateTimes 
	 * @throws AppException
	 */
	public boolean updateCarPlateForMember(MemberResultsDto memberResultsDto, int updateTimes) throws AppException;
	/**
	 * @Date        :      2015年9月6日
	 * @param id
	 * @return
	 * @throws AppException
	 */
	public CarPlateInfo getCarPlateInfoById(Long id) throws AppException;
	/**
	 * @Date        :      2015年9月28日
	 * @param carPlateInfo
	 * @param newMemberId
	 * @throws AppException
	 */
	public void updateCarPlate(CarPlateInfo carPlateInfo) throws AppException;
	
	/**
	 * @Date        :      2015年10月15日
	 * @param carPlate
	 * @return
	 * @throws AppException
	 */
	public List<CarPlateInfo> getCarPlateInfoListByCarPlate(String carPlate) throws AppException;
	
	
	public CarPlateInfo getCarPlateInfoByMarsCarId(String carId);
	
	/**
	 * @Date        :      2015年11月25日
	 * @param carPlateInfo
	 * @return
	 * @throws AppException
	 */
	public CarPlateInfo saveWechatCarPlateInfo(CarPlateInfo carPlateInfo) throws AppException;
	
	/*public MemberResultsDto getCarPlateInfoListByCarPlateOrMemberId(MemberResultsDto newMember) throws AppException*/
	
}
